りおんクロニクル


C# × DevOps(CI/CD)|GitHub Actions / Azure DevOpsで回す実務ガイド【2026年版】

Home【2026年版】C# / .NET入門と実践ガイド|基礎・業務アプリ開発・SQLite連携まで体系的に解説

C#で業務アプリを作るなら、 DevOps(CI/CD) を組み込むことで、 ビルド・テスト・デプロイを自動化できます。 ここでは GitHub ActionsAzure DevOps Pipelines を軸に、 実務で使える最小〜標準構成をまとめます。

この記事でわかること
・C#プロジェクトのCI(ビルド・テスト)
・GitHub Actionsでのワークフロー例
・Azure DevOps PipelinesでのYAMLパイプライン
・Web API / コンソール / WPFのデプロイ戦略
・ブランチ戦略(main / develop / feature)
・バージョニング・リリース運用の考え方

1. C# × DevOps(CI/CD)の全体像

最低限やるべきことは、 「mainにマージされたらビルド+テスト」 です。 そこから段階的にデプロイを自動化していきます。

2. GitHub ActionsでC#のCIを組む

■ 2-1. 最小のCIワークフロー(.NETビルド+テスト)

.github/workflows/ci.yml

name: CI

on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main, develop ]

jobs:
  build:
    runs-on: windows-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v4

    - name: Setup .NET
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: 8.0.x

    - name: Restore
      run: dotnet restore

    - name: Build
      run: dotnet build --configuration Release --no-restore

    - name: Test
      run: dotnet test --configuration Release --no-build

これで main / develop へのプッシュ・PR で 自動的にビルド&テストが走ります。

■ 2-2. アーティファクト(成果物)の保存

    - name: Publish
      run: dotnet publish src/MyApp/MyApp.csproj -c Release -o out

    - name: Upload artifact
      uses: actions/upload-artifact@v4
      with:
        name: myapp
        path: out

ビルド済みバイナリをダウンロードして動作確認できます。

3. GitHub ActionsでWeb APIを自動デプロイ

ASP.NET Core Web API を Azure App Service にデプロイする例です。

■ 3-1. mainブランチへのプッシュでデプロイ

name: WebAPI-CD

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v4

    - uses: actions/setup-dotnet@v4
      with:
        dotnet-version: 8.0.x

    - name: Publish
      run: dotnet publish src/WebApi/WebApi.csproj -c Release -o out

    - name: Deploy to Azure Web App
      uses: azure/webapps-deploy@v3
      with:
        app-name: my-webapi-app
        publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
        package: out

mainにマージ → 自動デプロイ という流れが作れます。 ステージング環境を挟む場合は、ブランチや環境を分けて制御します。

4. Azure DevOps PipelinesでC#のCI/CD

■ 4-1. YAMLパイプライン(ビルド+テスト)

azure-pipelines.yml

trigger:
  branches:
    include:
    - main
    - develop

pool:
  vmImage: 'windows-latest'

steps:
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '8.0.x'

- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: '**/*.csproj'

- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '**/*.csproj'
    arguments: '--configuration Release'

- task: DotNetCoreCLI@2
  inputs:
    command: 'test'
    projects: '**/*Tests.csproj'
    arguments: '--configuration Release'

■ 4-2. アーティファクト発行

- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    publishWebProjects: true
    arguments: '--configuration Release --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: true

- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: 'drop'

Releaseパイプラインからこのアーティファクトを使ってデプロイできます。

5. ブランチ戦略と環境(dev / stg / prod)

■ 5-1. よくあるブランチ構成

CIは develop + main、 CDは main → 本番 / develop → ステージング という構成が定番です。

■ 5-2. 環境ごとの設定

CI/CDで ASPNETCORE_ENVIRONMENT を切り替えてデプロイします。

6. バージョニングとリリース運用

■ 6-1. Gitタグでバージョン管理

git tag v1.2.0
git push origin v1.2.0

タグをトリガーにして「リリースビルド+本番デプロイ」を走らせるパターンもよく使われます。

■ 6-2. csprojでVersionを管理

<PropertyGroup>
  <Version>1.2.0</Version>
</PropertyGroup>

CIでこのVersionを読み取り、リリースノートやアーティファクト名に反映させることもできます。

7. C#プロジェクトで押さえておきたいCIチェック

最初は「ビルド+テスト」だけでも十分価値があります。

8. 業務アプリ向けベストプラクティス

まとめ:C# × DevOps で“ビルド・テスト・デプロイの手作業”をなくす

「毎回手でビルドしている」「デプロイ手順が属人化している」 という状態から抜け出すために、 C# × DevOps(CI/CD)は非常にコスパの良い投資になります。 この記事をベースに、あなたのプロジェクトに合ったパイプラインを設計してみてください。

前のページ  次のページ